package 代码coding题OR模拟题;

import java.util.Arrays;

public class leetcode806写字符串需要的行数 {
	public static  void main(String []args) {
		int width [] = {4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10};
//		String s = "abcdefghijklmnopqrstuvwxyz";
		String s = "bbbcccdddaaa";
		System.out.println(width.length);
		System.out.println(Arrays.toString(solution(width,s)));
	}
	public static int [] solution(int []width, String s) {
//		int line = 0;  这个 line 就是 从第一行 开始的 这就跟现实生活一样
		int line = 1;
		int sum = 0;
		for(int i = 0;i < s.length();i++) {
			int index = s.charAt(i) - 'a';
			if(sum < 100  && 100 - sum < width[index]) {
//				sum += width[s.charAt(i) - 'a'];
//				sum +=width[index];
				line++;
				sum = 0;
				i++; 
			}
			sum += width[index];
			if(sum >= 100 && i < s.length() - 1) {
//				sum = 0;
				sum -= 100;
				line++;
			}
//			else {
//				
//			}
		}
		return new int [] {line,sum};
	}
	/**
	 * 
	 * 这种代码 coding的 问题  
	 * 有时候这个细节 处理 是 真的 秒 我靠 
	 * 考研逻辑问题的 能力 coding问题
	 * 
	 * @param widths
	 * @param s
	 * @return
	 */
	   public int[] numberOfLines(int[] widths, String s) {
	        int[] ans = new int[2];
	        ans[0] = 1;
	        for (char arr : s.toCharArray()) {
	            ans[1] += widths[arr - 'a'];
	            if (ans[1] > 100) {
	                ans[1] = widths[arr - 'a'];
	                ans[0]++;
	            }
	        }
	        return ans;
	    }
}
